package com.browsesoft.hibernate;

import java.io.Reader;
import java.sql.Clob;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

	private static final SessionFactory sessionFactory;

	static {
		try {
			// Create the SessionFactory from hibernate.cfg.xml
			sessionFactory = new Configuration().configure()
					.buildSessionFactory();
		} catch (Throwable ex) {
			// Make sure you log the exception, as it might be swallowed
			System.err.println("Initial SessionFactory creation failed." + ex);
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	/**
	 * 将Clob对象内容转换成字符串
	 */
	public static String getStringFormCLob(Clob clob) {
		try {
			Reader reader = clob.getCharacterStream();
			char[] buffer = new char[(int) clob.length()];
			reader.read(buffer);
			return new String(buffer).replaceAll("\\\\\"", "\"");
		} catch (Exception ex) {
			throw new RuntimeException(ex);
		}
	}
}
